/*
 * @Author: _LJP 2634716776@qq.com
 * @Date: 2023-12-24 10:15:55
 * @LastEditors: _LJP 2634716776@qq.com
 * @LastEditTime: 2023-12-24 10:48:37
 * @FilePath: /my_-linux/Pro23/Process/Test_1117/myproc.cpp
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
#include<iostream>

#include<unistd.h>

#include<sys/types.h>

using namespace std;



// int main()
// {
//   cout<<"未经过fork()"<<endl;
//   pid_t id = fork();
//   if(id < 0){
//     cerr<<"fork Fail"<<endl;
//     exit(-1);
//   }
//   else if(id == 0){
//     int i = 5;
//     while(i--){
//       cout<<"子进程"<<" pid:"<<getpid()<<" ppid:"<<getppid()<<endl;
//       sleep(1);
//     }
//     exit(-1);
//   }
//   else{
//     while(1){
//       cout<<"父进程"<<" pid:"<<getpid()<<" ppid:"<<getppid()<<endl;
//       sleep(1);
//     }
//   }
  
//   return 0;
// }

int main()
{
  cout << "未经过fork()" << endl;
  pid_t id = fork();
  if (id < 0)
  {
    cerr << "fork Fail" << endl;
    exit(-1);
  }
  else if (id > 0)
  {
    int i = 5;
    while (i--)
    {
      cout << "父进程"
           << " pid:" << getpid() << " ppid:" << getppid() << endl;
      sleep(1);
    }
    exit(-1);
  }
  else
  {
    while (1)
    {
      cout << "子进程"
           << " pid:" << getpid() << " ppid:" << getppid() << endl;
      sleep(1);
    }
  }

  return 0;
}
